From 8f2d0bc5a3e8d163f01b2371012d515f78b496c0 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Timm=20B=C3=A4der?= Date: Sun, 26 Mar 2017 12:45:50 +0200 Subject: [PATCH] widget: Fix checks in gtk_widget_snapshot() If the widget isn't drawable anyway, just return; If the widget needs an allocate, print a warning, since it indicates a problem in the widget workflow (e.g. forgot to size_allocate a child widget). This maches the previous checks in gtk_widget_draw (with the same problems). --- gtk/gtkwidget.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 001a190850..44359545b6 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -15440,9 +15440,15 @@ gtk_widget_snapshot (GtkWidget *widget, double opacity; cairo_rectangle_int_t offset_clip; - if (_gtk_widget_get_alloc_needed (widget)) + if (!_gtk_widget_is_drawable (widget)) return; + if (_gtk_widget_get_alloc_needed (widget)) + { + g_warning ("Trying to snapshot %s %p without a current allocation", G_OBJECT_TYPE_NAME (widget), widget); + return; + } + priv = widget->priv; offset_clip = priv->clip; offset_clip.x -= priv->allocation.x; -- 2.30.2